package com.zzj.ecology.system.mapper.system;

import com.zzj.ecology.system.bean.system.SysUser;
import com.zzj.ecology.system.bean.system.SysUserExample;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysUserMapper {
    long countByExample(SysUserExample example);

    int deleteByExample(SysUserExample example);

    int deleteByPrimaryKey(Integer userId);

    int insert(SysUser record);

    int insertSelective(SysUser record);

    List<SysUser> selectByExample(SysUserExample example);

    SysUser selectByPrimaryKey(Integer userId);

    int updateByExampleSelective(@Param("record") SysUser record, @Param("example") SysUserExample example);

    int updateByExample(@Param("record") SysUser record, @Param("example") SysUserExample example);

    int updateByPrimaryKeySelective(SysUser record);

    int updateByPrimaryKey(SysUser record);

    /**
     * 分页查询列表页面数据
     * @param first
     * @param pageCounts
     * @return
     */
    List<SysUser> findPageList(Integer first, Integer pageCounts);

    /**
     * 根据 username = #{} 修改 登录时间 和 登录IP
     *
     * @param sysUser
     * @return
     */
    int updateLoginDateAndLoginIpByUsername(SysUser sysUser);

    /**
     * 批量删除用户,只是修改用户 delete_status='1' 的状态,并更新 修改时间 和修改人
     * @param userids
     * @param username
     * @param deleteStatus
     * @return
     */
    int updateDeleteStatusByIds(@Param("list") List<Integer> userids, @Param("username") String username, @Param("deleteStatus") String deleteStatus);

    /**
     * 根据 用户的 user_id 修改用户的修改时间和修改人员信息
     * @param sysUser
     * @return
     */
    int updateUserUpdateAtAndUpdatebyByUserId(SysUser sysUser);

    /**
     * 给用户初始化密码操作
     * @param sysUser
     * @return
     */
    int initializePassword(SysUser sysUser);

    /**
     * 更新用户账号状态
     * @param sysUser
     * @return
     */
    int updateUserStatus(SysUser sysUser);




}